home *** CD-ROM | disk | FTP | other *** search
/ Java 1996 August / Java - Summer 1996.iso / kaffe-0.2 / README < prev    next >
Text File  |  1996-02-19  |  6KB  |  153 lines

  1. KAFFE v0.2 - A JIT virtual machine to run Java(tm)* code
  2. ========================================================
  3.  
  4. This is Kaffe, a virtual machine design to execute Java bytecode.  Unlike
  5. other virtual machines available, this machine performs "just-in-time"
  6. code conversion from the abstract code to the host machine's native code.
  7. This will ultimately allow execution of Java code at the same speed as
  8. standard compiled code but while maintaining the advantages and flexibility
  9. of code independence.
  10.  
  11. What can run Kaffe
  12. ==================
  13.  
  14. This version of Kaffe will run on the following platforms:
  15.  
  16.     i386 FreeBSD 2.0.5R & 2.1.0R        (tested)
  17.     i386 Linux 1.2.13            (tested)
  18.     i386 NetBSD 1.1R            (untested)
  19.     i386 Solaris 2.4            (untested)
  20.  
  21. Although the system is relatively portable, because it generates native
  22. opcode internally, it is necessary to write additional code generators
  23. for each new architecture which is to be supported.  Future platforms
  24. will be added to this system as and when the author has time and the
  25. resources to do them.
  26.  
  27. Who can use Kaffe
  28. =================
  29.  
  30. This version of Kaffe is distributed under a Berkeley style license.
  31. Essentially you can use Kaffe for both personal and commerical purpose, on
  32. its own or as part of another package (see license.terms for full details).
  33.  
  34. Major changes in Kaffe v0.2
  35. ===========================
  36.  
  37.  * All virtual machine instructions are now supported.
  38.  * Array are now fully supported.
  39.  * Full threading and locks now supported.
  40.  * Garbage collection now supported.
  41.  * Majority of native library support complete.
  42.  * Sub generator now correctly handles all standard data types.
  43.  * Better native support added.
  44.  * Zip files can now be read.
  45.  * Autoconf installation support.
  46.  
  47. Compiling Kaffe
  48. ===============
  49.  
  50. The machine comes complete with the interpreter, stub generator, and
  51. supporting native libraries.   Compilation is controlled using the
  52. GNU autoconf program.  To generate the necessary makefiles
  53. type "./configure" in this directory.  This will identify your system
  54. and configure the software appropriately.  Compilation should then be
  55. a simple matter of typing "make" in this directory.  By default, the
  56. system will install into the /usr/local hierarchy as per the standard
  57. GNU coding rules (not that this is slightly different from release 0.1 so
  58. you might want to clear it away first).  This can be changed using the
  59. --prefix option to configure.  To install the binaries type "make install".
  60.  
  61. Note that this program needs GNU GCC-2.6.3 or later as it makes use of
  62. some of GCC's extensions.
  63.  
  64. Running Kaffe
  65. =============
  66.  
  67. For simplicity, this version of Kaffe is supplied with a copy of the
  68. class library from Sun's Java JDK-1.0.  The latest copy of this package
  69. can be obtained from http://www.javasoft.com.  This zipped file will be
  70. automatically installed in the correct directory.
  71.  
  72. Before running Kaffe it is necessary to configure the environment.
  73. This requires the setting of CLASSPATH, KAFFEHOME and LD_LIBRARY_PATH.
  74. For the standard installation these would be defined as follows:
  75.  
  76.     CLASSPATH=.:/usr/local/share/kaffe/classes.zip
  77.     KAFFEHOME=/usr/local/share/kaffe
  78.     LD_LIBRARY_PATH=/usr/lib:/usr/local/lib
  79.  
  80. A file "ENVIRONMENT" is generated by the configure program which contains
  81. a /bin/sh environment setup.  This may help you to figure out what to
  82. set to what if you alter the standard installation point.
  83.  
  84. The source comes with a test program "HelloWorldApp" which can be found
  85. in the test directory in the distribution.  After installation, run this
  86. program from the test directory by typing the following:
  87.  
  88.     cd <java source directory>/test
  89.     kaffe HelloWorldApp
  90.  
  91. This should load and execute the HelloWorld application.  If all is well
  92. it will print "Hello World!".   As a further test you might like to try
  93. compiling the HelloWorldApp source.  To do this type the following:
  94.  
  95.     javac HelloWorldApp.java
  96.  
  97. "javac" is a shell script which has been provided to invoke Kaffe on
  98. the standard Java compiler.  If all is well, the application should compile
  99. without incident.
  100.  
  101. The state of play
  102. =================
  103.  
  104. Kaffe should now run all non-graphical code which will run on a Java
  105. machine.  However there are still bugs and plenty of untested native
  106. library functions.  Some functions which are not currently implemented
  107. (most often because I don't understand exactly what they are suppose to
  108. do) will simply abort if called.  If you can help out on any of these
  109. then please do *BUT* remember, this is a clean-room implementation (I
  110. have never seen any of Sun's Java source code) and I cannot simply
  111. encorporate Javasoft's code.
  112.  
  113. Kaffe is known to correctly run Javasoft's Java compiler "javac" (which is
  114. included in the classes.zip file and a shell script is included to help
  115. run it) plus a number of small test programs.  However, other major
  116. programs have not been tested.
  117.  
  118. Kaffe and Sun's Java
  119. ====================
  120.  
  121. Kaffe is a clean-room implementation of a virtual machine which can run
  122. Java bytecode.  It is capable of interpreting code generated by Sun's
  123. software but has not been derived from any Sun code.  Currently this version
  124. utilises Sun's freely available compiled class library but it is hoped
  125. that this will be replaced with a freely available version in due time.
  126. At the moment it is impossible to validate whether this software is
  127. Java compatible(tm) (the test suites are not publically available) and
  128. the terms under which this can be claimed are unknown.
  129.  
  130. Help wanted
  131. ===========
  132.  
  133. The Kaffe virtual machine is far from complete.  Anyone who wants to
  134. contribute to this project should contact me on the address given below.
  135. I particularly need help on the following:
  136.  
  137.  * Public domain version of the class libraries.
  138.  
  139.  * Native support for the AWT and Motif libraries.
  140.  
  141.  * Public domain WWW browser facilties (either built using Kaffe or
  142.    encorporating Kaffe).
  143.  
  144.  
  145. Erm, that's it ....
  146.  
  147. Tim Wilkinson
  148. <tim@sarc.city.ac.uk>
  149.  
  150. ----
  151. * Java, Javasoft, and Java Virtual Machine are registered trademark of
  152.   Sun Microsystems, Inc.
  153.